package br.com.pfc.application.controller.locais;

import br.com.pfc.application.controller.BaseController;
import br.com.pfc.application.dao.EnderecoDAO;
import br.com.pfc.application.dao.LocalDAO;
import br.com.pfc.application.service.locais.LocalService;
import br.com.pfc.model.Endereco;
import br.com.pfc.model.Local;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Begin;
import org.jboss.seam.annotations.End;
import org.jboss.seam.annotations.FlushModeType;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;

/**
 *
 * @author mucceli
 */
@Scope(ScopeType.CONVERSATION)
@Name("localCriarAction")
public class LocalCriarController extends BaseController {

    @In
    LocalDAO localDAO;
    @In
    EnderecoDAO enderecoDAO;
    @In
    LocalService localService;
    private Endereco endereco = new Endereco();
    private Local local = new Local();
    private String paramLogradouro;
    private String paramBairro;
    private String paramCidade;
    private String paramUf;
    private String paramComplemento;
    private String paramCep;
    private String paramNome;

    @Begin(flushMode = FlushModeType.MANUAL, nested = true)
    public String setup() {
        return "novo_local";
    }

    @End
    public String criar() {

        setarEndereco();
        localService.salvarEndereco(endereco);

        try {
            local.setNome(paramNome);
            local.setEndereco(endereco);
            localDAO.salvar(local);
            adicionarMensagemInformacao("Local criado com sucesso!");
        } catch (Exception e) {
            adicionarMensagemErro("Erro ao criar local : " + e);
        }
        return "locais";
    }

    private void setarEndereco() {
        endereco.setBairro(paramBairro);
        endereco.setIdEndereco(300);
        endereco.setCidade(paramCidade);
        endereco.setCep(paramCep);
        endereco.setComplemento(paramComplemento);
        endereco.setLogradouro(paramLogradouro);
    }

    public String getParamBairro() {
        return paramBairro;
    }

    public void setParamBairro(String paramBairro) {
        this.paramBairro = paramBairro;
    }

    public String getParamCep() {
        return paramCep;
    }

    public void setParamCep(String paramCep) {
        this.paramCep = paramCep;
    }

    public String getParamComplemento() {
        return paramComplemento;
    }

    public void setParamComplemento(String paramComplemento) {
        this.paramComplemento = paramComplemento;
    }

    public String getParamNome() {
        return paramNome;
    }

    public void setParamNome(String paramNome) {
        this.paramNome = paramNome;
    }

    public String getParamCidade() {
        return paramCidade;
    }

    public void setParamCidade(String paramCidade) {
        this.paramCidade = paramCidade;
    }

    public String getParamLogradouro() {
        return paramLogradouro;
    }

    public void setParamLogradouro(String paramLogradouro) {
        this.paramLogradouro = paramLogradouro;
    }

    public String getParamUf() {
        return paramUf;
    }

    public void setParamUf(String paramUf) {
        this.paramUf = paramUf;
    }

    public Endereco getEndereco() {
        return endereco;
    }

    public void setEndereco(Endereco endereco) {
        this.endereco = endereco;
    }

    public Local getLocal() {
        return local;
    }

    public void setLocal(Local local) {
        this.local = local;
    }
}
